﻿using JiveMessenger.Models;
using System;
using System.ComponentModel;
using System.Windows;
using Windows.UI;
using Windows.UI.Text;
using Windows.UI.Xaml.Media;
namespace JiveMessenger.Models
{
    public interface IContact : INotifyPropertyChanged, IComparable<IContact>, IEquatable<IContact>
    {
        object Instance { get;}
        string Avatar { get; set; }
        System.Collections.ObjectModel.ObservableCollection<IChatGroup> ChatGroups { get; set; }
        System.Collections.ObjectModel.ObservableCollection<IEmoticon> RecentlyUsedEmoticons { get; set; }
        System.Collections.ObjectModel.ObservableCollection<JiveCustomEmoticonModel> CustomEmoticons { get; set; }
        JmShared.ClientStatus ClientStatus { get; set; }
        JmShared.DeviceType DeviceType { get; set; }
        FontFamily FontFamily { get; set; }
        FontWeight FontWeight { get; set; }
        FontStyle FontStyle { get; set; }
        Color FontColor { get; set; }
        double FontSize { get; set; }
        bool IsIgnored { get; set; }
        bool IsFriend { get; set; }
        bool ShowInContactList { get; set; }
        string NickName { get; set; }
        string PrettyName { get; }
        string ToolTipText { get;}
        int UnreadMessageCount { get; set; }
        /// <summary>
        /// A composition of DeviceID and Username in the form of Username#DeviceID to use as unique client identifier.
        /// </summary>
        string UserID { get; }
        /// <summary>
        /// A unique identifier for the device the client is run on.
        /// </summary>
        string DeviceID { get; }
        string UserName { get; set; }
        IContact Clone();

    }
}
